package top.zhangjianyong.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import java.util.concurrent.CompletableFuture;
import top.zhangjianyong.blog.entity.dto.BlogCategoryDTO;
import top.zhangjianyong.blog.entity.po.Category;
import top.zhangjianyong.blog.params.category.CategoryRemoveParam;
import top.zhangjianyong.blog.params.category.CategorySaveOrUpdateParam;
import top.zhangjianyong.blog.params.category.CategoryTreeParam;
import top.zhangjianyong.blog.response.ApiResponse;

/**
 * 分类
 *
 * @author zhangjianyong
 * @since 2024/7/31 上午10:28
 */
public interface CategoryService extends IService<Category> {
  ApiResponse tree(CategoryTreeParam param);

  ApiResponse list(CategoryTreeParam param);

  ApiResponse saveOrUpdate(CategorySaveOrUpdateParam param);

  ApiResponse remove(CategoryRemoveParam param);

  BlogCategoryDTO getPath(Long id);

  CompletableFuture<BlogCategoryDTO> getPathAsync(Long id);
}
